Fledermaus
version: 1.00
www.towerreversed.org


this file is supplementary to fmreadme.txt.

the combat code in ffl/saga contains a number of bugs. fledermaus includes
the ability to fix (and unfix) some of these, in the "Fight Tweaks" submenu
of the "Misc" menu. this file gives brief descriptions of these bugs (and
other options in this submenu.)

the letters SDAM represent the four attributes:
S = strength, Str. (ffl); chikara, kougeki (saga)
D = defense, Def. (ffl); bougyo (saga)
A = agility, Agl. (ffl); subayasa (saga)
M = mana (ffl); maryoku (saga)

page 1
  
  name: saw fix 1
  desc: saw-type abilities compare an attack value with a defence value to
        determine whether the target is too hard to be cut. in a well-known
        bug, the logic of this test is reversed, so that targets with high
        D can be cut (and targets with low D can't.)

  name: saw fix 2
  desc: the attack value for saw-type abilities is the user's S. it's very
        likely it was instead supposed to be taken from the ability's data
        (with user S only determining the accuracy rate, not the attack.)

  name: saw fix 3
  desc: the effective defence value for saw-type abilities is increased if
        the target is currently paralysed. this test should have been: if the
        target has a resist-weapon ability (like 0WEAPON.)

  name: explode fixes
  desc: selfdestruct-type abilities (EXPLODE) are supposed to have a similar
        effect to wavecannon-type abilities (HYPER), but because of a couple
        of bugs in the code, they (almost) never have any such effect.

  name: enemy conf fixes
  desc: the confusion status interferes with a character's targeting, making
        them attack allies and heal enemies. although this is true for the
        party, bugs in the code mean that enemy characters behave weirdly,
        most obviously when they use melee-targeted attacks and hit not one
        of their allies, but the entire party.
  
  name: str-wp/blind fix
  desc: the blindness status lowers your effective accuracy with many
        attacks. but with the basic strength-based-weapon type, a bug means
        that being blinded actually increases your accuracy. (or technically,
        a blinded character has normal accuracy, but an unblinded character
        has reduced accuracy.)

  name: magic def fix
  desc: the damage done by elemental or magic-based attacks (like FIRE) is
        not affected by the target's M, unless it's high enough that they
        take no damage at all. this was more likely supposed to work like
        physical defence, so that the higher your M, the less damage you
        take from these attacks.

page 2

  name: wide magic def fix
  desc: the damage done by wide-scope magic-based attacks (like TORNADO) is
        not affected by the target's M, unless they have an elemental
        weakness to the attack, in which case their M is subtracted. this is
        obviously the wrong way round. (you should take full damage only if
        you are vulnerable to the element, otherwise your M should reduce the
        damage.)

  name: excalibur damage range fix
  desc: many attack types calculate damage using one byte from their ability
        data as a base value and another byte as a range value; for instance,
        BAZOOKA uses values of 150 and 100 to give a damage value between 150
        and 250. excalibur-type abilities (\XCLBR) reuse their base value
        byte as a range value and don't use their other byte for anything. it
        seems likely they were supposed to use the second byte as the range
        value (which is how fledermaus's ability data edit presents it.)

  name: multi-atk damage calc. +S fix
  desc: multi-hit-type attacks (like 8LEGS) calculate damage for each hit in
        a similar way to many other attacks; but they add the target's A to
        the total where other attack types would add the user's S, which is
        presumably what was intended.
  
  name: enemy barrier target fix
  desc: barrier-type abilities increase D for you and all your allies.
        however, when used by an enemy (like SOLDIER), instead of increasing
        all enemies' D, barrier will increase all your characters' D, as if
        one of you had used it.
  
  name: whip coil target fix
  desc: when a whip-type attack hits its target, it immobilises them, and
        if they had yet to act that round, they will do nothing instead. but
        thanks to a bug, the immobilising effect always happens to the first
        enemy character, regardless of who you hit with the whip, and even if
        it was an enemy that hit one of you.

  name: status strike shield fix
  desc: status-strike-type attacks (like P-FANGS) can hit or miss like many
        other attack types. but with these, if the target is using a shield,
        the shield's evade value is added to the attacker's effective
        agility, increasing the chance of a hit. it should be added to the
        target's effective agility instead, lowering the chance of a hit, as
        with other attack types.

  name: drain counter fix
  desc: after most attacks, a counter-attack is only possible if the target
        survived the attack. for drain-type attacks (like TOUCH), the logic
        is reversed, and the target will only counter-attack if they were
        killed by the attack.

page 3
  
  name: mutate uses quarter calculation fix
  desc: one possible effect of mutation is for uses of your abilities to go
        up or down. this was supposed to add or subtract one-quarter of the
        maximum uses of the ability; because of a bug, it adds or subtracts
        the whole maximum uses of the ability.
  
  name: no-escape rate
  desc: the probability that your attempt to run is unsuccessful (assuming
        the fight even can be escaped.) roughly speaking, this is a
        percentage, like most of the "rates" listed here.
  
  name: critical hit rate
  desc: the probability that a critical-type weapon (such as \CORAL), when
        used to attack a vulnerable character (such as SHARK), will get a
        critical hit. a critical hit kills instantly; if this test fails,
        the attack will still ignore defence and evasion (it will always hit
        for full damage.)
  
  name: surprise rate (hero)
  desc: the probability of getting a surprise attack on the enemy, provided
        you have a surprise ability and the enemy doesn't have a warning
        ability.
  
  name: surprise rate (enemy)
  desc: like the previous entry, but the probability of the enemy getting a
        surprise attack on you.
  
  name: conf. expiry rate
  desc: the probability that confusion will wear off by itself in any given
        round.
  
  name: status change base fail rate
  desc: this value is used as part of the calculation for whether a status
        attack (like SLEEP) takes effect. roughly, fail probability is:
        [(target M + base fail rate) - user M] / 100.
        to put it another way, this is the margin by which user M must exceed
        target M to guarantee success.

page 4
  
  name: wide status base fail rate
  desc: like the previous entry, but for wide-scope attacks (like RIDDLE).

  name: status strike base success rate
  desc: like the base fail rates, but for status-strike attacks (like
        P-FANGS). instead of calculating a probability of failure, the game
        calculates a probability of success:
        [(user M + base success rate) - target M] / denominator
  
  name: status strike success test denominator
  desc: used in the same calculation as the previous entry. in ffl/saga this
        value is 70; possibly it was meant to be 100.
  
  name: shadow/mirror attr value limit
  desc: shadow-type abilities (MIRROR) raise A, but only as far as a given
        limit. in ffl/saga this is 99.
  
  name: poison damage sfx source abil
  desc: the sound effect that plays when a poisoned character takes damage at
        the end of a round is defined by giving a soundalike ability. in ffl/
        saga this is HAMMER.
  
  name: stealth abil id
  desc: the ability id used to test whether a character can perform surprise
        attacks.
  
  name: warning abil id 1
  desc: one of two ability ids used to test whether a character can prevent
        surprise attacks.
  
page 5

  name: warning abil id 2
  desc: one of two ability ids used to test whether a character can prevent
        surprise attacks.
        
  name: para. expiry rate source abil
  desc: the probability that paralysis will wear off by itself in any given
        round is not stored in code, as for confusion, but in the data for a
        particular ability. this specifies that ability.
  
  name: sleep expiry rate source abil
  desc: like the previous entry, but for sleep.
  
  name: forfeit abil
  desc: when an enemy exhausts all their abilities, they will either flee, or
        (in a no-escape fight) spontaneously die. this is done by setting
        their current action to this ability. (this ability should have its
        type set to Escape/forfeit.)

  name: esp text
  desc: the fight text displayed when a character uses an esp-type ability.
        in ffl this is "BAKU use ESP"; it could be changed to, for instance,
        the unused "anticipate" text. (both esp and plain shield types have
        no real effect in combat except for the being-used announcement;
        their defensive ability comes from the individual abilities having
        the "defends vs physical" flag set.)

  name: conf. expiry text
  desc: the fight text displayed when confusion wears off by itself. in ffl,
        the character's name is not included in this text (though you see it
        if you heal with PAN); fixing this is beyond the scope of the fight
        tweaks submenu, but the "tr tweaks" patch includes a workaround that
        involves changing this textid.

--
